<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>NPOIFSStream (POI API Documentation)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="NPOIFSStream (POI API Documentation)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/NPOIFSStream.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/poi/poifs/filesystem/NPOIFSMiniStore.html" title="class in org.apache.poi.poifs.filesystem"><span class="strong">PREV CLASS</span></a></li>
<li><a href="../../../../../org/apache/poi/poifs/filesystem/NPOIFSStream.StreamBlockByteBuffer.html" title="class in org.apache.poi.poifs.filesystem"><span class="strong">NEXT CLASS</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/poi/poifs/filesystem/NPOIFSStream.html" target="_top">FRAMES</a></li>
<li><a href="NPOIFSStream.html" target="_top">NO FRAMES</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>SUMMARY:&nbsp;</li>
<li><a href="#nested_class_summary">NESTED</a>&nbsp;|&nbsp;</li>
<li>FIELD&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">CONSTR</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">METHOD</a></li>
</ul>
<ul class="subNavList">
<li>DETAIL:&nbsp;</li>
<li>FIELD&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">CONSTR</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">METHOD</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<p class="subTitle">org.apache.poi.poifs.filesystem</p>
<h2 title="Class NPOIFSStream" class="title">Class NPOIFSStream</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.poi.poifs.filesystem.NPOIFSStream</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd>java.lang.Iterable&lt;java.nio.ByteBuffer&gt;</dd>
</dl>
<hr>
<br>
<pre>public class <strong>NPOIFSStream</strong>
extends java.lang.Object
implements java.lang.Iterable&lt;java.nio.ByteBuffer&gt;</pre>
<div class="block">This handles reading and writing a stream within a
  <a href="../../../../../org/apache/poi/poifs/filesystem/NPOIFSFileSystem.html" title="class in org.apache.poi.poifs.filesystem"><code>NPOIFSFileSystem</code></a>. It can supply an iterator
  to read blocks, and way to write out to existing and
  new blocks.
 Most users will want a higher level version of this, 
  which deals with properties to track which stream
  this is.
 This only works on big block streams, it doesn't
  handle small block ones.
 This uses the new NIO code
 
 TODO Implement a streaming write method, and append</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested_class_summary">
<!--   -->
</a>
<h3>Nested Class Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected class&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/poifs/filesystem/NPOIFSStream.StreamBlockByteBuffer.html" title="class in org.apache.poi.poifs.filesystem">NPOIFSStream.StreamBlockByteBuffer</a></strong></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected class&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/poifs/filesystem/NPOIFSStream.StreamBlockByteBufferIterator.html" title="class in org.apache.poi.poifs.filesystem">NPOIFSStream.StreamBlockByteBufferIterator</a></strong></code>
<div class="block">Class that handles a streaming read of one stream</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../../org/apache/poi/poifs/filesystem/NPOIFSStream.html#NPOIFSStream(org.apache.poi.poifs.filesystem.BlockStore)">NPOIFSStream</a></strong>(<a href="../../../../../org/apache/poi/poifs/filesystem/BlockStore.html" title="class in org.apache.poi.poifs.filesystem">BlockStore</a>&nbsp;blockStore)</code>
<div class="block">Constructor for a new stream.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><strong><a href="../../../../../org/apache/poi/poifs/filesystem/NPOIFSStream.html#NPOIFSStream(org.apache.poi.poifs.filesystem.BlockStore, int)">NPOIFSStream</a></strong>(<a href="../../../../../org/apache/poi/poifs/filesystem/BlockStore.html" title="class in org.apache.poi.poifs.filesystem">BlockStore</a>&nbsp;blockStore,
            int&nbsp;startBlock)</code>
<div class="block">Constructor for an existing stream.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/poifs/filesystem/NPOIFSStream.html#free()">free</a></strong>()</code>
<div class="block">Frees all blocks in the stream</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.util.Iterator&lt;java.nio.ByteBuffer&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/poifs/filesystem/NPOIFSStream.html#getBlockIterator()">getBlockIterator</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.io.OutputStream</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/poifs/filesystem/NPOIFSStream.html#getOutputStream()">getOutputStream</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/poifs/filesystem/NPOIFSStream.html#getStartBlock()">getStartBlock</a></strong>()</code>
<div class="block">What block does this stream start at?
 Will be <a href="../../../../../org/apache/poi/poifs/common/POIFSConstants.html#END_OF_CHAIN"><code>POIFSConstants.END_OF_CHAIN</code></a> for a
  new stream that hasn't been written to yet.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.util.Iterator&lt;java.nio.ByteBuffer&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/poifs/filesystem/NPOIFSStream.html#iterator()">iterator</a></strong>()</code>
<div class="block">Returns an iterator that'll supply one <code>ByteBuffer</code>
  per block in the stream.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/poifs/filesystem/NPOIFSStream.html#updateContents(byte[])">updateContents</a></strong>(byte[]&nbsp;contents)</code>
<div class="block">Updates the contents of the stream to the new
  set of bytes.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="NPOIFSStream(org.apache.poi.poifs.filesystem.BlockStore, int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NPOIFSStream</h4>
<pre>public&nbsp;NPOIFSStream(<a href="../../../../../org/apache/poi/poifs/filesystem/BlockStore.html" title="class in org.apache.poi.poifs.filesystem">BlockStore</a>&nbsp;blockStore,
            int&nbsp;startBlock)</pre>
<div class="block">Constructor for an existing stream. It's up to you
  to know how to get the start block (eg from a 
  <a href="../../../../../org/apache/poi/poifs/storage/HeaderBlock.html" title="class in org.apache.poi.poifs.storage"><code>HeaderBlock</code></a> or a <a href="../../../../../org/apache/poi/poifs/property/Property.html" title="class in org.apache.poi.poifs.property"><code>Property</code></a>)</div>
</li>
</ul>
<a name="NPOIFSStream(org.apache.poi.poifs.filesystem.BlockStore)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>NPOIFSStream</h4>
<pre>public&nbsp;NPOIFSStream(<a href="../../../../../org/apache/poi/poifs/filesystem/BlockStore.html" title="class in org.apache.poi.poifs.filesystem">BlockStore</a>&nbsp;blockStore)</pre>
<div class="block">Constructor for a new stream. A start block won't
  be allocated until you begin writing to it.</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="getStartBlock()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getStartBlock</h4>
<pre>public&nbsp;int&nbsp;getStartBlock()</pre>
<div class="block">What block does this stream start at?
 Will be <a href="../../../../../org/apache/poi/poifs/common/POIFSConstants.html#END_OF_CHAIN"><code>POIFSConstants.END_OF_CHAIN</code></a> for a
  new stream that hasn't been written to yet.</div>
</li>
</ul>
<a name="iterator()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>iterator</h4>
<pre>public&nbsp;java.util.Iterator&lt;java.nio.ByteBuffer&gt;&nbsp;iterator()</pre>
<div class="block">Returns an iterator that'll supply one <code>ByteBuffer</code>
  per block in the stream.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code>iterator</code>&nbsp;in interface&nbsp;<code>java.lang.Iterable&lt;java.nio.ByteBuffer&gt;</code></dd>
</dl>
</li>
</ul>
<a name="getBlockIterator()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBlockIterator</h4>
<pre>public&nbsp;java.util.Iterator&lt;java.nio.ByteBuffer&gt;&nbsp;getBlockIterator()</pre>
</li>
</ul>
<a name="updateContents(byte[])">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updateContents</h4>
<pre>public&nbsp;void&nbsp;updateContents(byte[]&nbsp;contents)
                    throws java.io.IOException</pre>
<div class="block">Updates the contents of the stream to the new
  set of bytes.
 Note - if this is property based, you'll still
  need to update the size in the property yourself</div>
<dl><dt><span class="strong">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd></dl>
</li>
</ul>
<a name="getOutputStream()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOutputStream</h4>
<pre>public&nbsp;java.io.OutputStream&nbsp;getOutputStream()
                                     throws java.io.IOException</pre>
<dl><dt><span class="strong">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd></dl>
</li>
</ul>
<a name="free()">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>free</h4>
<pre>public&nbsp;void&nbsp;free()
          throws java.io.IOException</pre>
<div class="block">Frees all blocks in the stream</div>
<dl><dt><span class="strong">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/NPOIFSStream.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/poi/poifs/filesystem/NPOIFSMiniStore.html" title="class in org.apache.poi.poifs.filesystem"><span class="strong">PREV CLASS</span></a></li>
<li><a href="../../../../../org/apache/poi/poifs/filesystem/NPOIFSStream.StreamBlockByteBuffer.html" title="class in org.apache.poi.poifs.filesystem"><span class="strong">NEXT CLASS</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/poi/poifs/filesystem/NPOIFSStream.html" target="_top">FRAMES</a></li>
<li><a href="NPOIFSStream.html" target="_top">NO FRAMES</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>SUMMARY:&nbsp;</li>
<li><a href="#nested_class_summary">NESTED</a>&nbsp;|&nbsp;</li>
<li>FIELD&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">CONSTR</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">METHOD</a></li>
</ul>
<ul class="subNavList">
<li>DETAIL:&nbsp;</li>
<li>FIELD&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">CONSTR</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">METHOD</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>
                <i>Copyright 2014 The Apache Software Foundation or
        its licensors, as applicable.</i>
            </small></p>
</body>
</html>
